Creo que tengo una buena pregunta. Estoy haciendo mi propio repositorio de solicitud general al que puedo referirme en lugar de incrustar todas las solicitudes en cada archivo JS por separado.
Para las solicitudes en las que paso un cuerpo, necesito pasar dos cosas a stringify
Parece que no puedo reemplazar el campo identificador con su contenido real, creo que está pasando "campo" como su nombre en lugar del contenido de la cadena "campo".
Código de llamada:
Request.Request.useSendPostWithBody("User/checkAlt","email","XXX@XXX.uk")Código de solicitud:
Request.useSendPostWithBody = (endpoint, field, content) => { const [ data, setData ]=useState('') useEffect(() => { fetch(`${window.ipAddress.ip}/${endpoint}`, { method: "POST", headers:{'Content-Type':'application/json'}, body: JSON.stringify({ email: content })}) // this works as the required field for this request is email // body: JSON.stringify({ field : content })}) // this doesn't and here is where I think the issue lies because not all requests are going to pass "email" .then((result)=> { return result.json() }) .catch(error =>{ console.log("error") }) .then((data)=>{ setData(data) console.log('data') console.log(data) }) },[]) }debe usar corchetes [] para indicar que el nombre de la clave debe evaluarse, así:
{ // other values, body: JSON.stringify({ [field]: content })}), }